/**
\page page_widget_set Widget Set

<table CELLPADDING=0 style="width:100%;
  table-layout:fixed;
	margin:0px 0px 0px 0px;
	border-width:0px 0px 0px 0px; 
	border-color:#7F7F7F;">
<tr> 

<td style="width:80%; padding:0px 5px 0px 0px; vertical-align: text-top; text-align: left">
<h1 style="margin:0px; padding:0px">Overview</h1>

%Qtilities provides a number of easy to use and useful widgets to use in Qt applications. This page provides an overview of those widgets.

Table of contents:
- \ref search_box_widget
- \ref property_editor_interface
- \ref logging_widgets
- \ref widgets_code_editor
- \ref configuration_widget
- \ref qtilities_main_window

</td>

<td style="width:20%; vertical-align: top; margin:0px 0px 0px 0px;">
<table style="table-layout:auto;
	margin:0px 0px 0px 0px; 
  width: 100%;
	border-width:0px 0px 0px 0px; 
	border-color:#7F7F7F;
  background-color: #d1d3d4;">
<tr>
<td style="background-color: #5a5c5e; text-align: center">
<h2 style ="color:#FFFFFF">First Steps</h2>
</td>
</tr>
<tr>
<td>
- <a href="page_getting_started.html">Getting Started</a><br>
- <a href="page_the_basics.html">The Basics</a><br>
- <a href="page_examples_and_plugins.html">Examples and Plugins</a><br>
</td>
</tr>
<tr>
<td style="background-color: #5a5c5e; text-align: center">
<h2 style ="color:#FFFFFF">Overviews</h2>
</td>
</tr>
<tr>
<td>
- <a href="page_action_management.html">Action Management</a><br>
- <a href="page_tree_structures.html">Building Trees</a><br>
- <a href="page_debugging.html">Debugging Applications</a><br>
- <a href="page_extension_system.html">Extension System</a><br>
- <a href="page_factories.html">Factories</a><br>
- <a href="page_logging.html">Logging</a><br>
- <a href="page_modules_overview.html">Modules</a><br>
- <a href="page_object_management.html">Object Management</a><br>
- <a href="page_observers.html">Observers</a><br>
- <a href="page_observer_widgets.html">Observer Widgets</a><br>
- <a href="page_project_management.html">Project Management</a><br>
- <a href="page_tasking.html">Tasking</a><br>
- <a href="page_widget_set.html">Widget Set</a><br>
</td>
</tr>
</table>
</td>

</tr>
</table>

\section search_box_widget Search Box Widget

The Qtilities::CoreGui::SearchBoxWidget class provides a ready to use, customizable search box widget. Below is a screenshot of the search box widget in search and replace mode with all buttons enabled:

\image html search_box_widget.jpg "Search Box Widget"

\section property_editor_interface Property Editor Interface

The Qtilities::CoreGui::ObjectPropertyBrowser class provides an easy to use interface to the <a href="http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtpropertybrowser/">Qt Property Browser Framework</a>. Through the interface you can view the Q_PROPERTY properties of any object and it is possible to filter which subclasses of the object can be set. See the class documentation for more information.

Below is a screenshot of the property editor widget in the tree browser mode. For a list of the available modes, see the Qtilities::CoreGui::ObjectPropertyBrowser::BrowserType enumeration.

\image html property_editor_tree_browser.jpg "Property Browser (Tree Browser Mode)"

\section logging_widgets Logging Widgets

When using the %Qtilities logger you can use the Qtilities::CoreGui::LoggerGui class to obtain logging widgets as well as a configuration widget for the logger. See the class documentation for more information.

Below is an example dock log widget. Note the ready to use search box widget and actions.

\image html log_dock_widget.jpg "Log Dock Widget"

\section string_list_widget String List Widget

The StringListWidget class is a simple widget which can be used to display a QStringList. You can give your string list a type using setStringType() and the list of strings to be displayed is set using setStringList().

The widget is a QMainWindow with a toolbar at the top containing actions to remove and add strings. To customize the operation of the widget the string list model can be accessed using stringListModel() and the view can be accessed through listView().

Below is an image of the string list widget with the string type set to "Architecture".

\image html class_stringlistwidget_screenshot.jpg "The String List Widget"

\section widgets_code_editor Code Editor Widget

The Qtilities::CoreGui::CodeEditorWidget class is a code editor which can be embedded in applications where the user must be able to edit a file. The goal of the code editor widget is not to provide a complete code editor solution, but rather to provide a widget to edit files (code or text) where full code editing capabilities (code folding etc.) are not required.

A screenshot of the code editor widget is shown in the \ref qtilities_main_window section below.

\section configuration_widget Configuration Widget (Application Settings)

The Qtilities::CoreGui::ConfigurationWidget class provides a ready to use application settings widget. See the class documentation for more information.

Below is an example configuration widget taken from the \p ObjectManagementExample in the \p QtilitiesExamples project:

\image html project_configuration_widget.jpg "Example: Project Configuration Widget"

\section qtilities_main_window Qtilities Main Window Architecture

%Qtilities provides a main window architecture which allows you to create complex main windows easily. The Qtilities::CoreGui::QtilitiesMainWindow class is the main class. It supports modes that can be added to it, where modes are classes implementing the Qtilities::CoreGui::Interfaces::IMode interface. Each mode provide a widget which and an icon identifying the mode. Modes are listed in a top to bottom list view on the left hand of the main window and when a mode is clicked, its widget is set as the active widget in the main window.

The Qtilities::CoreGui::DynamicSideWidgetViewer class is able to display widgets implementing the Qtilities::CoreGui::Interfaces::ISideViewerWidget interface. Each side viewer is wrapped using the Qtilities::CoreGui::DynamicSideWidgetWrapper class which provides actions to remove the side viewer or to duplicate the side viewer. The side viewer wrapper also allows side viewer widgets to add custom actions to the wrapper widget. The Qtilities::CoreGui::SideViewerWidgetFactory class can be used to simplify development of side viewer widgets.

Below is an example of the main window architecture in action. This screenshot was taken form the \p MainWindowExample in the \p QtilitiesExamples project.

\image html example_main_window.jpg "Example Of Main Window Architecture"

*/
